Embodiments herein generally relate to electrostatographic printers and copiers or reproduction machines, and more particularly, concerns a method of preparing data for printing by a digital printing apparatus.
RIP (Raster Image Processing) performance is a performance metric for digital front ends (DFE) of printers. Print servers attempt to improve RIP performance for variable imaging (VI) and certain other types of jobs by identifying reusable objects, imaging and compressing them, caching them, and then expanding and assembling them onto the final page when they are needed. In this regard an “object” is defined as an image, graphic item, portion of text, any combination of the three, or any other item that can appear on the printed page and which can be reused by various different instances of the print job. Currently, all of these operations are performed during RIP time. Each cached object must be imaged and compressed when it is first created, and then each time it is used it must be expanded and assembled, after which the final page is compressed again. These operations are processor cycle intensive, which would require expensive hardware and print servers use special optimizations to avoid full page assembly when possible, but for some jobs it is unavoidable.
In view of these issues, embodiments herein provide various methods of preparing data for printing by a digital printing apparatus. Exemplary method embodiments herein receive, by a processor of the printing apparatus, a variable information print job. The variable information print job comprises reusable objects and record-specific objects. The method herein processes each of these objects into a dual-plane representation. The upper plane is compressed via a run-length coding (RLC) that includes the capability of transparent pixel runs signifying areas in which the lower plane should be visible. The lower plane of the object is JPEG compressed. The method also stores the compressed reusable objects and the compressed record-specific objects within a storage medium of the printing apparatus.
The embodiments herein combine ones of the compressed upper planes of the record-specific objects and the compressed upper planes of the reusable objects that correspond to the record of the variable information print job (using the processor) to create a single compressed upper plane for the record within an output buffer of the printing apparatus. This process of combining the upper planes is performed without decompressing the compressed upper planes of the record-specific objects or the reusable objects.
Further, the method creates an ordered list (corresponding to the record) of lower plane tiles by assembling the compressed lower planes of the record-specific objects and the compressed lower planes of the reusable objects.
The methods herein also perform a printing operation for the record of the variable information print job. This is done by decompressing multiple ones of the lower plane tiles in a predetermined order to form a lower plane of the record into an output raster page. The printing operation also decompresses the single compressed upper plane of the record into the output raster page. Then, the output raster page is output to a printing engine of the printing apparatus to print the record of the variable information print job on print media.
The process of combining the upper planes of the objects includes parsing the compressed upper planes of the record-specific objects and the reusable objects into at least one pixel run. Then, starting with a topmost object the method identifies whether each pixel run is transparent or opaque. If the pixel run is an opaque pixel run, the method outputs the opaque pixel run to the output buffer unchanged. If the pixel run is a transparent pixel run, the method replaces the transparent pixel run with a relative next lowest opaque pixel run before outputting the transparent pixel run to the output buffer.
Apparatus embodiments are also disclosed herein. One exemplary printing apparatus embodiment includes one or more processors that receive the variable information print job. The processor(s) processes each of reusable objects and the record-specific objects into a dual-plane representation. The upper plane is compressed via a run-length coding (RLC) that includes the capability of transparent pixel runs signifying areas in which the lower plane should be visible. The lower plane of the object is JPEG compressed.
A storage medium is operatively connected to the processor. The storage medium stores the dual-plane compressed objects (reusable as well as record-specific). The storage medium also stores instructions executable by the processor to allow the printing apparatus to print the variable information print job.
An output buffer is operatively connected to the processor and a printing engine is operatively connected to the processor and the output buffer. The processor combines ones of the compressed upper planes of the record-specific objects and the compressed upper planes of the reusable objects corresponding to the record of the variable information print job to create a single compressed upper plane for the record within the output buffer. Further, the processor creates an ordered list (corresponding to the record) of lower plane tiles by assembling the compressed lower planes of the record-specific objects and the compressed lower planes of the reusable objects.
The processor also performs a printing operation for the record of the variable information print job. The processor decompresses multiple ones of the lower plane tiles in a predetermined order to form a lower plane of the record into an output raster page. The processor also decompresses the single compressed upper plane of the record into the output raster page. Then the processor can output the output raster page to a printing engine of the printing apparatus to print the record of the variable information print job on print media.
The process of combining the upper planes of the objects by the processor comprises parsing the compressed upper planes of the record-specific objects and the compressed upper planes of the reusable objects into at least one pixel run, starting with a topmost object to identify whether each pixel run is transparent or opaque. If the pixel run is an opaque pixel run, the processor outputs the opaque pixel run to the output buffer unchanged. If the pixel run is a transparent pixel run, the processor replaces the transparent pixel run with a relative next lowest opaque pixel run before outputting the transparent pixel run to the output buffer.
With the embodiments herein, the objects are only compressed a single time for each record that is printed. Therefore, when the upper plane objects are combined, the process is performed without decompressing either of the compressed objects. In other words, the embodiments herein combine the upper plane objects while they are in a compressed state, which avoids having to decompress either object in order to combine them. This allows the process to be so fast that the raster image processing can be performed simultaneously with the printing operation.
These and other features are described in, or are apparent from, the following detailed description.